﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class УниверсальныеМеханизмы
	{

		public void ПометитьНаУдалениеДополнительнуюИнформациюОбъекта(/*ОбъектВладелец, Отказ, ШапкаОшибки*/)
		{
			if(true/*Отказ*/)
			{
			}
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("Объект", ОбъектВладелец);
			/*Запрос.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ХранилищеДополнительнойИнформации.Ссылка,
	|	ХранилищеДополнительнойИнформации.Объект
	|ИЗ
	|	Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
	|ГДЕ
	|	ХранилищеДополнительнойИнформации.Объект = &Объект
	|	И (НЕ ХранилищеДополнительнойИнформации.ПометкаУдаления)";*/
			//Выборка = Запрос.Выполнить().Выбрать();
			while(true/*Выборка.Следующий()*/)
			{
			}
			//;;
		}
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ МЕХАНИЗМА ВНЕШНИХ КОМПОНЕНТ
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
		// Функция добавляет внешнюю компоненту в регистр сведений
		//

		public object ДобавлениеВнешнейКомпоненты(/*ИсходныйФайл, ДвоичныеДанные = Неопределено, СообщатьОРезультате = Истина*/)
		{
			//ФайлНаДиске = Новый Файл(ИсходныйФайл);
			if(true/*ДвоичныеДанные = Неопределено*/)
			{
				if(true/*НЕ ФайлНаДиске.Существует()*/)
				{
					//Сообщить("- Исходный файл отсутствует на диске: " + ИсходныйФайл);
				}
				//ДатаИзмененияФайла = ФайлНаДиске.ПолучитьВремяИзменения();
			}
			//НаборЗаписей = РегистрыСведений.ВнешниеКомпоненты.СоздатьНаборЗаписей();
			//НаборЗаписей.Отбор.ИмяФайла.Установить(ФайлНаДиске.Имя);
			//НаборЗаписей.Прочитать();
			if(true/*Не НаборЗаписей.Количество() = 0*/)
			{
				//ПрошлаяДатаИзмененияФайла = НаборЗаписей[0].ДатаИзмененияФайла;
				//НаборЗаписей.Очистить();
			}
			//Запись = НаборЗаписей.Добавить();
			//Запись.ИмяФайла           = ФайлНаДиске.Имя;
			//Запись.ДатаИзмененияФайла = ДатаИзмененияФайла;
			//Запись.ХранилищеФайла     = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных());
			return null;
		}
		// ДобавлениеВнешнейКомпоненты()
		// Функция удаляет внешнюю компоненту в регистр сведений
		//

		public object УдалениеВнешнейКомпоненты(/*ИмяКомпоненты, СообщатьОРезультате = Истина*/)
		{
			//НаборЗаписей = РегистрыСведений.ВнешниеКомпоненты.СоздатьНаборЗаписей();
			//НаборЗаписей.Отбор.ИмяФайла.Установить(ИмяКомпоненты + ".dll");
			return null;
		}
		// ДобавлениеВнешнейКомпоненты()
		// Проверяет правильность заполнения Ф.И.О.
		//

		public object ФИОНаписаноПоРусски(/*Знач СтрокаПараметр*/)
		{
			//СтрокаПараметр = СокрЛП(СтрокаПараметр);
			//СписокДопустимыхЗначений = Новый Соответствие;
			//СписокДопустимыхЗначений.Вставить(КодСимвола(" "), " ");
			//СписокДопустимыхЗначений.Вставить(КодСимвола("-"), "-");
			//СписокДопустимыхЗначений.Вставить(КодСимвола("ё"), "ё");
			//СписокДопустимыхЗначений.Вставить(КодСимвола("Ё"), "Ё");
			//КодА = КодСимвола("А");
			//КодЯ = КодСимвола("я");
			return null;
		}
		// ФИОНаписаноВерно()
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ МЕХАНИЗМА ДОПОЛНИТЕЛЬНЫХ ПЕЧАТНЫХ ФОРМ И ОБРАБОТОК
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
		//Процедура открывает список выбора внешних обработок

		public void ОткрытьСписокВнешнихОбработок(/**/)
		{
			//ВидПеречисления = Перечисления.ВидыДополнительныхВнешнихОбработок.Обработка;
			//Форма = Справочники.ВнешниеОбработки.ПолучитьФорму("ФормаСписка",,ВидПеречисления);
			//Форма.СправочникСписок.Отбор.ВидОбработки.Установить(ВидПеречисления);
			//Форма.ЭлементыФормы.СправочникСписок.НастройкаОтбора.ВидОбработки.Доступность = Ложь;
			//Форма.Открыть();
		}
		// ()
		//Процедура открывает список выбора внешних отчетов

		public void ОткрытьСписокВнешнихОтчетов(/**/)
		{
			//ВидПеречисления = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет;
			//Форма = Справочники.ВнешниеОбработки.ПолучитьФорму("ФормаСписка",,ВидПеречисления);
			//Форма.СправочникСписок.Отбор.ВидОбработки.Установить(ВидПеречисления);
			//Форма.ЭлементыФормы.СправочникСписок.НастройкаОтбора.ВидОбработки.Доступность = Ложь;
			//Форма.Открыть();
		}
		// ()
		//Процедура открывает список выбора внешних печатных форм

		public void ОткрытьСписокВнешнихПечатныхФорм(/**/)
		{
			//ВидПеречисления = Перечисления.ВидыДополнительныхВнешнихОбработок.ПечатнаяФорма;
			//Форма = Справочники.ВнешниеОбработки.ПолучитьФорму("ФормаСписка",,ВидПеречисления);
			//Форма.СправочникСписок.Отбор.ВидОбработки.Установить(ВидПеречисления);
			//Форма.ЭлементыФормы.СправочникСписок.НастройкаОтбора.ВидОбработки.Доступность = Ложь;
			//Форма.Открыть();
		}
		// ОткрытьСписокВнешнихПечатныхФорм
		//Процедура открывает список выбора внешних обработок заполнения табличных частей

		public void ОткрытьСписокВнешнихОбработокЗаполненияТабличныхЧастей(/**/)
		{
			//ВидПеречисления = Перечисления.ВидыДополнительныхВнешнихОбработок.ЗаполнениеТабличныхЧастей;
			//Форма = Справочники.ВнешниеОбработки.ПолучитьФорму("ФормаСписка",,ВидПеречисления);
			//Форма.СправочникСписок.Отбор.ВидОбработки.Установить(ВидПеречисления);
			//Форма.ЭлементыФормы.СправочникСписок.НастройкаОтбора.ВидОбработки.Доступность = Ложь;
			//Форма.Открыть();
		}
		// ОткрытьСписокВнешнихОбработокЗаполненияТабличныхЧастей

		public void ОткрытьСписокВнешнихОбработокПодключаемыхКОтчету(/**/)
		{
			//ВидПеречисления = Перечисления.ВидыДополнительныхВнешнихОбработок.ВнешняяОбработкаПодключаемаяКОтчету;
			//Форма = Справочники.ВнешниеОбработки.ПолучитьФорму("ФормаСписка",,ВидПеречисления);
			//Форма.СправочникСписок.Отбор.ВидОбработки.Установить(ВидПеречисления);
			//Форма.ЭлементыФормы.СправочникСписок.НастройкаОтбора.ВидОбработки.Доступность = Ложь;
			//Форма.Открыть();
		}
		// ОткрытьСписокВнешнихОбработокПодключаемыхКОтчету
		///////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ С ДОПОЛНИТЕЛЬНЫМИ КНОПКАМИ
		// Функция инициализирует дерево дополнительных кнопок
		//	Параметры:
		//		Нет
		// Возвращаемое значение:
		//		Тип: ДереваЗначений.

		public object ИнициализироватьДеревоДополнительныхКнопок(/**/)
		{
			//ДеревоКнопок = Новый ДеревоЗначений;
			/*//Если ИмяКнопки = Неопределено, создается разделитель
*/
			/*//Если Дерево имеет подчиненные, то 
*/
			//ДеревоКнопок.Колонки.Добавить("Имя");
			//ДеревоКнопок.Колонки.Добавить("ТипКнопки");
			//ДеревоКнопок.Колонки.Добавить("Текст");
			//ДеревоКнопок.Колонки.Добавить("Подсказка");
			//ДеревоКнопок.Колонки.Добавить("Картинка");
			//ДеревоКнопок.Колонки.Добавить("Действие");
			//ДеревоКнопок.Колонки.Добавить("Пометка");
			//ДеревоКнопок.Колонки.Добавить("ИзменяетДанные");
			/*//Остальные свойства кнопки
*/
			//ДеревоКнопок.Колонки.Добавить("Расшифровка");
			return null;
		}
		// ()
		// Функция добавляет новую строку в дерево кнопок
		// Параметры:
		//	< СтрокаПодменю > (обязательный)
		//		Тип: Дерево или элемент дерева значений, в который необходимо добавить новое описание кнопки
		//	< Имя > (обязательный)
		//		Тип: Строка. Имя создаваемой кнопки;
		//	< ТипКнопки > (по умолчанию «Действие»)
		//		Тип: ТипКнопкиКоманднойПанели. Тип создаваемой кнопки (Кнопка, разделитель, подменю);
		//	< Текст > (по умолчанию пустая строка)
		//		Тип: Строка. Текст кнопки.
		//	< Текст > (по умолчанию пустая строка)
		//		Тип: Строка. Текст кнопки.
		//	< Действие > (по умолчанию «Не Определено»)
		//		Тип: Действие. Действие кнопки (процедура должна быть описана в форме объекта, на который навешивается подменю).
		//	< Расшифровка > (по умолчанию не определено)
		//		Тип: Произвольный.
		//	< Пометка > (по умолчанию «Ложь»)
		//		Тип: Булево.
		//	< Подсказка > (по умолчанию пустая строка)
		//		Тип: Строка. Подсказка создаваемой кнопки.
		//	< Картинка > (по умолчанию «Не Определено»)
		//		Тип: Картинка. Картинка создаваемой кнопки.
		// Возвращаемое значение:
		//		Тип: СтрокаДереваЗначений.

		public object ДобавитьСтрокуВДеревоКнопок(/*СтрокаПодменю, Имя, Знач ТипКнопки = Неопределено ,Текст = "", Действие = Неопределено, Расшифровка = Неопределено, Пометка = Ложь, Подсказка = "", Картинка = Неопределено, Позиция = Неопределено, ИзменяетДанные = Ложь*/)
		{
			if(true/*ТипКнопки = Неопределено*/)
			{
				//ТипКнопки = ТипКнопкиКоманднойПанели.Действие;
			}
			if(true/*Позиция = Неопределено*/)
			{
				//СтрокаКнопки         = СтрокаПодменю.Строки.Добавить();
			}
			//СтрокаКнопки.Имя                = Имя;
			//СтрокаКнопки.ТипКнопки          = ТипКнопки;
			//СтрокаКнопки.Текст              = Текст;
			//СтрокаКнопки.Действие           = Действие;
			//СтрокаКнопки.Картинка           = Картинка;
			//СтрокаКнопки.Подсказка          = Подсказка;
			//СтрокаКнопки.Пометка            = Пометка;
			//СтрокаКнопки.ИзменяетДанные     = ИзменяетДанные;
			//СтрокаКнопки.Расшифровка = Расшифровка;
			return null;
		}
		// Процедура формирует подменю по дереву значений
		// Параметры:
		//	< СтрокаПодменю > (обязательный)
		//		Тип: Дерево или элемент дерева значений, по данным которого необходимо построить подменю.
		//	< Подменю> (обязательный)
		//		Тип: Элемент командной панели «Кнопка» типа «Подменю». На которой необходимо сформировать новое подменю.
		//	< Очищать> (по умолчанию «Ложь»)
		//		Тип: булево. Определяет: следует ли очищать переданное подменю.
		//	< ДобавлятьРазделительВНачало > (по умолчанию «Ложь»)
		//		Тип: булево. Определяет: следует ли добавить в начало подменю разделитель.

		public void СформироватьПодменю(/*СтрокаПодменю, Подменю, Очищать = Ложь, ДобавлятьРазделительВНачало = Ложь*/)
		{
			//Строки = СтрокаПодменю.Строки;
			//Кнопки = Подменю.Кнопки;
			if(true/*Очищать*/)
			{
				//Кнопки.Очистить();
			}
			if(true/*ДобавлятьРазделительВНачало и Строки.Количество() > 0*/)
			{
				//Кнопки.Добавить(,ТипКнопкиКоманднойПанели.Разделитель);
			}
		}
		// Процедура формирует подменю по дереву значений
		// Параметры:
		//	< СтрокаПодменю > (обязательный)
		//		Тип: Дерево или элемент дерева значений, по данным которого необходимо построить подменю.
		//	< Подменю> (обязательный)
		//		Тип: Элемент командной панели «Кнопка» типа «Подменю». На которой необходимо сформировать новое подменю.
		//	< Очищать> (по умолчанию «Ложь»)
		//		Тип: булево. Определяет: следует ли очищать переданное подменю.
		//	< ДобавлятьРазделительВНачало > (по умолчанию «Ложь»)
		//		Тип: булево. Определяет: следует ли добавить в начало подменю разделитель.

		public void СформироватьИерархическоеПодменю(/*СтрокаПодменю, Подменю, Очищать = Ложь, ДобавлятьРазделительВНачало = Ложь*/)
		{
			//Строки = СтрокаПодменю.Строки;
			//Кнопки = Подменю.Кнопки;
			if(true/*Очищать*/)
			{
				//Кнопки.Очистить();
			}
			if(true/*ДобавлятьРазделительВНачало и Строки.Количество() > 0*/)
			{
				//Кнопки.Добавить(,ТипКнопкиКоманднойПанели.Разделитель);
			}
		}
		//СформироватьИерархическоеПодменю
		///////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ ВНЕШНИМИ ОБРАБОТКАМИ ПОДКЛЮЧАЕМЫЕ К ОТЧЕТАМ
		// Функция возвращает результат выполнения внешней обработки подключаемой к отчету
		//
		// Описание:
		//		Обмен данными с внешней обработкой осуществляется через реквизит «ДополнительныеПараметры»
		//		внешней обработки. Для работы обработки в качестве внешней, подключаемой к отчету,
		//		реквизит «ДополнительныеПараметры» должен иметь следующую структуру:
		//			- Отчет - ОтчетОбъект, из которого осуществляется вызов внешней обработки
		//			- ТекстСообщения -  строка, содержащая текст, который следует выводить в предопределенное место в табличном поле отчета после выполнения обработки. Каждая новая строка выводится в отдельной ячейке. Если ТекстСообщения пустой, то в табличное поле ничего не выводиться.
		//			- Отказ - флаг, определяющий необходимость дальнейшего построения отчета
		//

		public object ВыполнитьОбработкуПодключаемуюКОтчету(/*СтрокаКнопки, Отчет, ТабличныйДокумент*/)
		{
			/*// Получить ссылку на внешнюю обработку
*/
			//СсылкаНаВнешнююОбработку = СтрокаКнопки.Ссылка;
			//Результат = Неопределено;
			if(true/*ТипЗНЧ(СсылкаНаВнешнююОбработку) = Тип("СправочникСсылка.ВнешниеОбработки")*/)
			{
				//ОбъектВнешнейФормы = СсылкаНаВнешнююОбработку.ПолучитьОбъект();
				if(true/*ОбъектВнешнейФормы = Неопределено*/)
				{
					//Сообщить("Ошибка получения внешней обработки. Возможно обработка была удалена", СтатусСообщения.Важное);
				}
				//ИмяФайла = КаталогВременныхФайлов() + "PlugEpf.tmp";
				//ДвоичныеДанные = ОбъектВнешнейФормы.ХранилищеВнешнейОбработки.Получить();
				//ДвоичныеДанные.Записать(ИмяФайла);
				/*// Обмен данными с внешней обработкой осуществляется через реквизит «ДополнительныеПараметры» 
*/
				/*// Реквизит "ДополнительныеПараметры" должен иметь следующую структуру:
*/
				/*//	- Отчет - ОтчетОбъект, из которого осуществляется вызов внешней обработки
*/
				/*//	- ТабличныйДокумент - ТабличныйДокумент, в который осуществляется вывод отчета
*/
				/*//	- Отказ - флаг, определяющий необходимость дальнейшего построения отчета
*/
				//ДополнительныеПараметры = Новый Структура("Отчет, ТабличныйДокумент, Отказ", Отчет, ТабличныйДокумент, Ложь);
			}
			return null;
		}
		// ВыполнитьОбработкуПодключаемуюКОтчету
		// Функция возвращает таблицу обработок, подключаемых к отчету
		//
		// Параметры:
		//	ИмяМетаданныхОбъекта				- <Строка>, полное имя метаданных объекта
		//

		public object ПолучитьСписокОбработокПодключаемыхКОтчету(/*ИмяМетаданныхОбъекта*/)
		{
			//Запрос = Новый Запрос;
			/*Запрос.Текст = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ВнешниеОбработкиПринадлежность.Ссылка,
	|	ВЫБОР
	|		КОГДА ЕСТЬNULL(ВнешниеОбработкиПринадлежность.ПредставлениеКнопки, """") <> """"
	|			ТОГДА ВнешниеОбработкиПринадлежность.ПредставлениеКнопки
	|		ИНАЧЕ ВнешниеОбработкиПринадлежность.Ссылка.Наименование
	|	КОНЕЦ КАК Наименование,
	|	ВнешниеОбработкиПринадлежность.СпособЗапуска КАК СпособЗапуска,
	|	""ВнешняяОбработка"" + ВнешниеОбработкиПринадлежность.Ссылка.Код КАК Идентификатор
	|ИЗ
	|	Справочник.ВнешниеОбработки.Принадлежность КАК ВнешниеОбработкиПринадлежность
	|ГДЕ
	|	(НЕ ВнешниеОбработкиПринадлежность.Ссылка.ПометкаУдаления)
	|	И ВнешниеОбработкиПринадлежность.МетаданныеОбъекта = &МетаданныеОбъекта
	|	И ВнешниеОбработкиПринадлежность.Ссылка.ВидОбработки = &ВидОбработки
	|
	|УПОРЯДОЧИТЬ ПО
	|	ВнешниеОбработкиПринадлежность.НомерСтроки";*/
			//Запрос.УстановитьПараметр("ВидОбработки", Перечисления.ВидыДополнительныхВнешнихОбработок.ВнешняяОбработкаПодключаемаяКОтчету);
			//Запрос.УстановитьПараметр("МетаданныеОбъекта", ИмяМетаданныхОбъекта);
			//Результат = Запрос.Выполнить().Выгрузить();
			//Результат.Индексы.Добавить("СпособЗапуска");
			return null;
		}
		// ПолучитьСписокОбработокПодключаемыхКОтчету()
		///////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ ЗАПОЛНЕНИЯ ТАБЛИЧНЫХ ЧАСТЕЙ ИЗ ВНЕШНИХ ОБРАБОТОК
		// Процедура формирует дерево кнопок для подменю "Заполнить"
		//

		public object ПолучитьДеревоКнопокЗаполненияТабличныхЧастей(/*Ссылка, Действие*/)
		{
			//Запрос = Новый Запрос;
			/*Запрос.Текст = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ВнешниеОбработкиПринадлежность.Ссылка,
	|	ВнешниеОбработкиПринадлежность.ДополнительныеПараметрыОбработки КАК ДополнительныеПараметрыОбработки,
	|	ВЫБОР
	|		КОГДА ЕСТЬNULL(ВнешниеОбработкиПринадлежность.ПредставлениеКнопки, """") <> """" ТОГДА ВнешниеОбработкиПринадлежность.ПредставлениеКнопки
	|		ИНАЧЕ ВнешниеОбработкиПринадлежность.Ссылка.Наименование
	|	КОНЕЦ КАК Наименование,
	|	ВнешниеОбработкиПринадлежность.ТабличнаяЧастьИмя КАК ТабличнаяЧастьИмя
	|ИЗ
	|	Справочник.ВнешниеОбработки.Принадлежность КАК ВнешниеОбработкиПринадлежность
	|ГДЕ
	|	(НЕ ВнешниеОбработкиПринадлежность.Ссылка.ПометкаУдаления)
	|	И ВнешниеОбработкиПринадлежность.МетаданныеОбъекта = &МетаданныеОбъекта
	|	И ВнешниеОбработкиПринадлежность.Ссылка.ВидОбработки = &ВидОбработки
	|
	|УПОРЯДОЧИТЬ ПО
	|	ТабличнаяЧастьИмя
	|ИТОГИ ПО
	|	ТабличнаяЧастьИмя";*/
			//МетаданныеОбъекта = Ссылка.Метаданные();
			//ДеревоКнопок = ИнициализироватьДеревоДополнительныхКнопок();
			//Запрос.УстановитьПараметр("ВидОбработки", Перечисления.ВидыДополнительныхВнешнихОбработок.ЗаполнениеТабличныхЧастей);
			if(true/*Метаданные.Документы.Содержит(МетаданныеОбъекта)*/)
			{
				//Запрос.УстановитьПараметр("МетаданныеОбъекта", "Документ." + МетаданныеОбъекта.Имя);
			}
			//НомерКнопки = 0;
			//Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
			while(true/*Выборка.Следующий()*/)
			{
				//СтрокаПодменю = ДобавитьСтрокуВДеревоКнопок(ДеревоКнопок, Выборка.ТабличнаяЧастьИмя, , , , , , , , , Истина);
				//ВыборкаДействий            = Выборка.Выбрать();
				while(true/*ВыборкаДействий.Следующий()*/)
				{
					//НомерКнопки = НомерКнопки + 1;
					//СтруктураРасшифровки = Новый Структура("СсылкаНаВнешнююОбработку, ДополнительныеПараметрыОбработки", ВыборкаДействий.Ссылка, ВыборкаДействий.ДополнительныеПараметрыОбработки.Получить());
					//ДобавитьСтрокуВДеревоКнопок(СтрокаПодменю, "ЗаполнениеТЧ"+НомерКнопки, ТипКнопкиКоманднойПанели.Действие, ВыборкаДействий.Наименование, Действие , СтруктураРасшифровки, , , , , Истина);
				}
				//;;
			}
			return null;
		}
		// ()
		// Процедура - обработчик нажатия любой из дополнительных кнопок заполнения табличных частей
		// Параметры:
		//    Форма       : Форма, вызвавшая процедуру

		public void ОбработатьНажатиеНаДополнительнуюКнопкуЗаполненияТЧ(/*СтрокаКнопки,ЭтотОбъект*/)
		{
			/*// Получить ссылку на внешнюю обработку
*/
			//СтрокаКнопки.Расшифровка.Свойство("СсылкаНаВнешнююОбработку", СсылкаНаВнешнююОбработку);
			/*// Получить дополнительные параметры внешней обработки
*/
			//СтрокаКнопки.Расшифровка.Свойство("ДополнительныеПараметрыОбработки", ДополнительныеПараметры);
			if(true/*ТипЗНЧ(СсылкаНаВнешнююОбработку) = Тип("СправочникСсылка.ВнешниеОбработки")*/)
			{
				//ИмяФайла = КаталогВременныхФайлов()+"PrnForm.tmp";
				//ОбъектВнешнейФормы = СсылкаНаВнешнююОбработку.ПолучитьОбъект();
				if(true/*ОбъектВнешнейФормы = Неопределено*/)
				{
					//Сообщить("Ошибка получения внешней обработки заполнения табличной части документа. Возможно обработка была удалена", СтатусСообщения.Важное);
				}
				//ДвоичныеДанные = ОбъектВнешнейФормы.ХранилищеВнешнейОбработки.Получить();
				//ДвоичныеДанные.Записать(ИмяФайла);
			}
		}
		// Процедура формирует подменю "Заполнить" у ТЧ по дереву значений
		//

		public void СформироватьПодменюЗаполненияТЧПоДеревуКнопок(/*ДеревоКнопок,СоответствиеТЧ*/)
		{
		}
		// СформироватьПодменюЗаполненияТЧПоДеревуКнопок()
		// Процедура формирует подменю "Заполнить" для соответствия ТЧ

		public object СформироватьПодменюЗаполненияТЧ(/*Ссылка, СоответствиеТЧ, Действие*/)
		{
			//КнопкиЗаполненияТЧ = ПолучитьДеревоКнопокЗаполненияТабличныхЧастей(Ссылка,Действие);
			//СформироватьПодменюЗаполненияТЧПоДеревуКнопок(КнопкиЗаполненияТЧ,СоответствиеТЧ);
			return null;
		}
		// СформироватьПодменюЗаполненияТЧ()
		//////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ ОБРАБОТКИ ПЕЧАТИ
		// Процедура открывает общую форму выбора печатных форм. Выводит на печать документ.
		//
		// Параметры:
		//  Объект - объект медаданных
		//  ФормаВладелец - владелец ФормаВыбораПечатныхФорм
		//

		public void ОткрытьФормуВыбораПечатныхФормОбъекта(/*Объект, ФормаВладелец*/)
		{
			/*// Открыть форму выбора печатных форм
*/
			//Форма = ПолучитьОбщуюФорму("ФормаВыбораПечатныхФорм", ФормаВладелец, Объект);
			if(true/*Форма.ОткрытьМодально() <> Истина*/)
			{
			}
			/*// Печать макета объекта
*/
		}
		// ОткрытьФормуВыбораПечатныхФормОбъекта()
		// Функция заполняет начальные параметры построителю отчета, который
		//  используется для настройки отбора в мезанизме подключения внешних печатных форм.
		//
		// Параметры
		//  ИмяТаблицы     - Строка, имя таблицы БД к которой необходимо определить запрос
		//  СинонимТаблицы - Строка, синоним таблицы БД к которой необходимо определить запрос
		//
		// Возвращаемое значение:
		//   ПостроительОтчета
		//

		public object ИнициализироватьПостроительДопПечатныхФорм(/*ИмяТаблицы, СинонимТаблицы*/)
		{
			//ПостроительОтчета = Новый ПостроительОтчета;
			/*ПостроительОтчета.Текст = "
	|ВЫБРАТЬ ПЕРВЫЕ 1
	|	Объект.Ссылка КАК Ссылка
	|ИЗ
	|	" + ИмяТаблицы + " КАК Объект
	|ГДЕ
	|	Объект.Ссылка = &Ссылка
	|{ГДЕ
	|	Объект.Ссылка.*}
	|";*/
			//ПолеОбъекта = ПостроительОтчета.ДоступныеПоля.Найти("Ссылка");
			//ПолеОбъекта.Представление = ?(НЕ ЗначениеЗаполнено(СинонимТаблицы), ИмяТаблицы, СинонимТаблицы);
			return null;
		}
		// ()

		public object ПолучитьСтрокуДереваМакетовПоУмолчанию(/*ИмяМетаданных,ДеревоКнопок*/)
		{
			//ИмяМакетаПоУмолчанию = ВосстановитьЗначение(ИмяМетаданных+ "МакетПечати");
			if(true/*ИмяМакетаПоУмолчанию = Ложь или ДеревоКнопок.Строки.Количество() = 0*/)
			{
				//СтрокаПоУмолчанию = Неопределено;
			}
			return null;
		}
		// ()
		// Функция формирует дерево макетов печати объекта метаданных.
		//
		// Параметры:
		//  СсылкаОбъекта - Ссылка объекта метаданных
		//  ВнутренниеПечатныеФормы - ТаблицаЗначений, Структура
		//  Действие - Действие кнопки (процедура должна быть описана в форме объекта, на который навешивается подменю).
		//  ДействиеУстановитьПечатьПоУмолчанию - Действие кнопки по умолчанию (процедура должна быть описана в форме объекта, на который навешивается подменю).
		//  ДобавлятьВДеревоРазделительИПечатьПоУмолчанию - булево,
		//  ПредставлениеПечатнойФормы - Строка, Наименование элемента справочника ВнешниеОбработки
		//
		// Возвращаемое значение
		//  ДеревоКнопок - ДеревоЗначений
		//

		public object ПолучитьДеревоМакетовПечати(/*СсылкаОбъекта, ВнутренниеПечатныеФормы, Действие = Неопределено, ДействиеУстановитьПечатьПоУмолчанию = Неопределено, ДобавлятьВДеревоРазделительИПечатьПоУмолчанию = Истина, ПредставлениеПечатнойФормы = Неопределено*/)
		{
			/*// Сформировать структуру дерева
*/
			//ДеревоКнопок = ИнициализироватьДеревоДополнительныхКнопок();
			/*// Добавить в дерево встроенные печатные формы
*/
			//ДобавитьВДеревоМакетовВстроенныеФормы(ДеревоКнопок, ВнутренниеПечатныеФормы, Действие, ДобавлятьВДеревоРазделительИПечатьПоУмолчанию, ПредставлениеПечатнойФормы);
			/*// Добавить в дерево дополнительные печатные формы из Справочник.ДополнительныеПечатныеФормы
*/
			//ДобавитьВДеревоМакетовДополнительныеФормы(ДеревоКнопок, СсылкаОбъекта, Действие, ВнутренниеПечатныеФормы, ДобавлятьВДеревоРазделительИПечатьПоУмолчанию, ПредставлениеПечатнойФормы);
			/*// Получить имя макета печати по умолчанию
*/
			//СтрокаПоУмолчанию = ПолучитьСтрокуДереваМакетовПоУмолчанию(СсылкаОбъекта.Метаданные().Имя ,ДеревоКнопок);
			/*// Для подменю Печать объекта: установить пометку кнопки печати по умолчанию
*/
			if(true/*НЕ СтрокаПоУмолчанию = Неопределено*/)
			{
				//СтрокаПоУмолчанию.Пометка = Истина;
			}
			/*// Добавит печать по умолчанию
*/
			if(true/*ДобавлятьВДеревоРазделительИПечатьПоУмолчанию И ДеревоКнопок.Строки.Количество() > 0*/)
			{
				//ДобавитьСтрокуВДеревоКнопок(ДеревоКнопок, Строка(Новый УникальныйИдентификатор), ТипКнопкиКоманднойПанели.Разделитель);
				//ДобавитьСтрокуВДеревоКнопок(ДеревоКнопок, "ПечатьПоУмолчанию", ТипКнопкиКоманднойПанели.Действие, "По умолчанию...", ДействиеУстановитьПечатьПоУмолчанию, "ПечатьПоУмолчанию");
			}
			return null;
		}
		// ПолучитьДеревоМакетовПечати()
		// Процедура Устанавливает кнопку "Печать по умолчанию"
		//

		public void УстановитьПечатьПоУмолчанию(/*ПечатьПоУмолчанию, КоманднаяПанель, ДеревоМакетов, ИмяМетаданных, ДействиеПечатьПоУмолчанию*/)
		{
			//СтрокаПоУмолчанию = ПолучитьСтрокуДереваМакетовПоУмолчанию(ИмяМетаданных,ДеревоМакетов);
			if(true/*СтрокаПоУмолчанию = Неопределено*/)
			{
				if(true/*ПечатьПоУмолчанию <> Неопределено*/)
				{
					//КоманднаяПанель.Кнопки.Удалить(ПечатьПоУмолчанию);
					//ПечатьПоУмолчанию = Неопределено;
				}
			}
		}
		// Процедура устанавливает Подменю "Печать"
		// Параметры:
		//    Форма       : Форма, вызвавшая процедуру
		//    ДополнительныеКнопки : Структура дополнительных кнопок

		public void УстановитьПодменюПечати(/*ПодменюПечати, КоманднаяПанель, ДеревоМакетов*/)
		{
			if(true/*ДеревоМакетов.Строки.Количество() > 1*/)
			{
				//ИмяПодменю = "ПодменюПечати";
				if(true/*ПодменюПечати = Неопределено*/)
				{
					if(true/*КоманднаяПанель.ВыравниваниеКнопок = ВыравниваниеКнопокКоманднойПанели.Право*/)
					{
						//КоманднаяПанель.Кнопки.Вставить(0,,ТипКнопкиКоманднойПанели.Разделитель);
						//ПодменюПечати = КоманднаяПанель.Кнопки.Вставить(0,ИмяПодменю,ТипКнопкиКоманднойПанели.Подменю,"Печать");
					}
					//ПодменюПечати.Подсказка = "Меню выбора печатных форм";
				}
			}
		}
		// Процедура - обработчик нажатия любой из дополнительных кнопок печати
		//
		// Параметры:
		//  Форма       : Форма, вызвавшая процедуру
		//

		public void ПечатьПоДополнительнойКнопке(/*УдалитьДеревоМакетов, Объект, Форма = Неопределено, ТекстКнопки*/)
		{
			if(true/*Не Форма = Неопределено*/)
			{
				if(true/*Не РаботаСДиалогами.ПроверитьМодифицированностьВФорме(Объект,Форма)*/)
				{
				}
			}
			//ЭтоДокумент = Метаданные.Документы.Содержит(Объект.Метаданные());
			//ДеревоМакетовПечати = ПолучитьДеревоМакетовПечати(Объект.Ссылка, СтруктураВнутреннихПечатныхФорм);
			//СтрокаКнопки = ДеревоМакетовПечати.Строки.Найти(ТекстКнопки,"Текст");
			if(true/*СтрокаКнопки = Неопределено*/)
			{
				//Предупреждение("Печать не доступна. Изменился набор реквизитов!");
			}
			//Расшифровка = СтрокаКнопки.Расшифровка;
			if(true/*ТипЗнч(Расшифровка) = Тип("Структура")*/)
			{
				//ТабДокумент = НапечататьВнешнююФорму(Объект.Ссылка, Расшифровка);
				//НапечататьДокумент(ТабДокумент, , , ?(ЭтоДокумент, ОбщегоНазначения.СформироватьЗаголовокДокумента(Объект), Строка(Объект)), ,ТабДокумент);
			}
		}
		// ПечатьПоДополнительнойКнопке()

		public void ПечатьПоДополнительнойКнопкеВСписке(/*УдалитьДеревоМакетов, Объект, Форма = Неопределено, ТекстКнопки*/)
		{
			if(true/*Не Форма = Неопределено*/)
			{
				if(true/*Не РаботаСДиалогами.ПроверитьМодифицированностьВФорме(Объект,Форма)*/)
				{
				}
			}
			//ДеревоМакетовПечати = ПолучитьДеревоМакетовПечати(Объект.Ссылка, СтруктураВнутреннихПечатныхФорм);
			//СтрокаКнопки = ДеревоМакетовПечати.Строки.Найти(ТекстКнопки,"Текст");
			if(true/*СтрокаКнопки = Неопределено*/)
			{
				//Предупреждение("Печать не доступна. Изменился набор реквизитов!");
			}
			//НаПринтер = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ПечатьДокументовБезПредварительногоПросмотра") = Истина;
			//Расшифровка = СтрокаКнопки.Расшифровка;
			if(true/*ТипЗнч(Расшифровка) = Тип("Структура")*/)
			{
				//ТабДокумент = НапечататьВнешнююФорму(Объект.Ссылка, Расшифровка);
				//НапечататьДокумент(ТабДокумент, 0, НаПринтер, Строка(Объект), Объект.Ссылка);
			}
		}
		// Процедура назначает макет по умолчанию
		//

		public object НазначитьКнопкуПечатиПоУмолчанию(/*ДеревоМакетов, ИмяМетаданных*/)
		{
			//СтрокаПоУмолчанию = ПолучитьСтрокуДереваМакетовПоУмолчанию(ИмяМетаданных,ДеревоМакетов);
			//СписокМакетов = Новый СписокЗначений;
			//ФормаВыбораПечатнойФормыПоУмолчанию = ПолучитьОбщуюФорму("ФормаВыбораПечатнойФормыПоУмолчанию");
			//ФормаВыбораПечатнойФормыПоУмолчанию.СписокВыбораПечатнойФормы = СписокМакетов;
			//МакетПоУмолчанию = ФормаВыбораПечатнойФормыПоУмолчанию.ОткрытьМодально();
			if(true/*МакетПоУмолчанию = ""*/)
			{
				//СохранитьЗначение(ИмяМетаданных + "МакетПечати", Неопределено);
			}
			return null;
		}
		// Функция получает ТабличныйДокумент для печати из внешней печатной формы.
		//
		// Параметры
		//  Ссылка         - Ссылка, для которой необходимо напечатать документ
		//  ДвоичныеДанные - ДвоичныеДанные, внешняя обработка для печати
		//
		// Возвращаемое значение:
		//   ТабличныйДокумент
		//

		public object НапечататьВнешнююФорму(/*Ссылка, ИсточникМакета*/)
		{
			//ДвоичныеДанные = ИсточникМакета.СсылкаНаВнешнююОбработку.Принадлежность[ИсточникМакета.НомерСтроки - 1].ХранилищеВнешнейОбработки.Получить();
			/*// Получить дополнительные параметры внешней обработки
*/
			//ИсточникМакета.Свойство("ДополнительныеПараметрыОбработки", ДополнительныеПараметры);
			if(true/*ДвоичныеДанные = Неопределено*/)
			{
				//ДвоичныеДанные = ИсточникМакета.СсылкаНаВнешнююОбработку.ХранилищеВнешнейОбработки.Получить();
			}
			if(true/*ДвоичныеДанные = Неопределено*/)
			{
			}
			//ТабДокумент = Неопределено;
			//ИмяФайла = ПолучитьИмяВременногоФайла("epf");
			return null;
		}
		// Процедура дополняет таблицу печатных форма (ТаблицаМакетов) объекта
		// из справочника "Дополнительные печатные формы"
		//
		// Параметры:
		//  ДеревоМакетов - Дерево значений
		//  СсылкаОбъекта - Ссылка объекта метаданных
		//  Действие - Действие. Действие кнопки (процедура должна быть описана в форме объекта, на который навешивается подменю)
		//  ВнутренниеПечатныеФормы - ТаблицаЗначений, Структура
		//  ДобавлятьВДеревоРазделительИПечатьПоУмолчанию - булево
		//  ПредставлениеПечатнойФормы - Строка, Наименование элемента справочника ВнешниеОбработки
		//

		public void ДобавитьВДеревоМакетовДополнительныеФормы(/*ДеревоМакетов, СсылкаОбъекта, Действие, ВнутренниеПечатныеФормы, ДобавлятьВДеревоРазделительИПечатьПоУмолчанию = Истина, ПредставлениеПечатнойФормы = Неопределено*/)
		{
			//СтрокиДерева = ДеревоМакетов.Строки;
			if(true/*ТипЗнч(СсылкаОбъекта) = Тип("ОбъектМетаданных")*/)
			{
			}
			//МетаданныеОбъекта = СсылкаОбъекта.Метаданные();
			//Запрос = Новый Запрос;
			if(true/*ПредставлениеПечатнойФормы = Неопределено*/)
			{
				/*Запрос.Текст = 
		"ВЫБРАТЬ РАЗРЕШЕННЫЕ
		|	ВнешниеОбработкиПринадлежность.Ссылка КАК Ссылка,
		|	ВнешниеОбработкиПринадлежность.ДополнительныеПараметрыОбработки КАК ДополнительныеПараметрыОбработки,
		|	ВнешниеОбработкиПринадлежность.Ссылка.Наименование КАК Наименование,
		|	ВнешниеОбработкиПринадлежность.НастройкиПостроителяДляОтбора КАК НастройкиПостроителяДляОтбора,
		|	ВнешниеОбработкиПринадлежность.ЗаменяемаяПечатнаяФорма КАК ЗаменяемаяПечатнаяФорма,
		|	ВнешниеОбработкиПринадлежность.Ссылка.ВидОбработки КАК ВидОбработки,
		|	ВнешниеОбработкиПринадлежность.НомерСтроки
		|ИЗ
		|	Справочник.ВнешниеОбработки.Принадлежность КАК ВнешниеОбработкиПринадлежность
		|ГДЕ
		|	ВнешниеОбработкиПринадлежность.МетаданныеОбъекта = &МетаданныеОбъекта
		|	И ВнешниеОбработкиПринадлежность.Ссылка.ВидОбработки = &ВидОбработкиПечатнаяФорма
		|	И (НЕ ВнешниеОбработкиПринадлежность.ЗаменяемаяПечатнаяФорма ССЫЛКА Справочник.ВнешниеОбработки)
		|	И (НЕ ВнешниеОбработкиПринадлежность.Ссылка.ПометкаУдаления)
		|
		|УПОРЯДОЧИТЬ ПО
		|	ВнешниеОбработкиПринадлежность.НомерСтроки
		|ИТОГИ ПО
		|	ЗаменяемаяПечатнаяФорма,
		|	Ссылка";*/
			}
			//Запрос.УстановитьПараметр("ВидОбработкиПечатнаяФорма", Перечисления.ВидыДополнительныхВнешнихОбработок.ПечатнаяФорма);
			if(true/*Метаданные.Документы.Содержит(МетаданныеОбъекта)*/)
			{
				//Запрос.УстановитьПараметр("МетаданныеОбъекта", "Документ." + МетаданныеОбъекта.Имя);
			}
			//БылРазделитель = Не СтрокиДерева.Количество();
			//ВыборкаЗаменяемыхФорм = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
			while(true/*ВыборкаЗаменяемыхФорм.Следующий()*/)
			{
				//ЭтоЗаменяемаяФорма = ЗначениеЗаполнено(ВыборкаЗаменяемыхФорм.ЗаменяемаяПечатнаяФорма);
				//НаименованиеПечатнойФормы = "";
				if(true/*ЭтоЗаменяемаяФорма*/)
				{
					if(true/*ТипЗНЧ(ВнутренниеПечатныеФормы) = Тип("ТаблицаЗначений")*/)
					{
						//СтрокаВнутреннейПечатнойФормы = ВнутренниеПечатныеФормы.Найти(ВыборкаЗаменяемыхФорм.ЗаменяемаяПечатнаяФорма, "Имя");
						if(true/*СтрокаВнутреннейПечатнойФормы = Неопределено*/)
						{
						}
						//НаименованиеПечатнойФормы = СтрокаВнутреннейПечатнойФормы.Заголовок;
						/*//Это заглушка для совместимости со старыми документами.
*/
					}
				}
				//ПодменятьВстроеннуюФорму = Истина;
				//ВыборкаСсылок = ВыборкаЗаменяемыхФорм.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
				while(true/*ВыборкаСсылок.Следующий()*/)
				{
					if(true/*Не ЭтоЗаменяемаяФорма*/)
					{
						//НаименованиеПечатнойФормы = ВыборкаСсылок.Наименование;
					}
					//Выборка = ВыборкаСсылок.Выбрать();
					while(true/*Выборка.Следующий()*/)
					{
						/*// Проверим, удовлетворяет ли подключаемый отчет указанным в нем условиям
*/
						//НастройкиПостроителя = Выборка.НастройкиПостроителяДляОтбора.Получить();
						if(true/*ТипЗнч(НастройкиПостроителя) = Тип("НастройкиПостроителяОтчета")*/)
						{
							//ПостроительОтчета = ИнициализироватьПостроительДопПечатныхФорм(МетаданныеОбъекта.ПолноеИмя(), МетаданныеОбъекта.Представление());
							//ПостроительОтчета.Параметры.Вставить("Ссылка", СсылкаОбъекта);
							//ПостроительОтчета.УстановитьНастройки(НастройкиПостроителя, Истина, Ложь, Ложь, Ложь, Ложь);
							//ПостроительОтчета.Выполнить();
							if(true/*ПостроительОтчета.Результат.Пустой()*/)
							{
							}
							//Подсказка = ", Отбор: " + Строка(ПостроительОтчета.Отбор);
						}
						//СтруктураРасшифровки = Новый Структура("ВидПечатнойФормы, СсылкаНаВнешнююОбработку, ЗаменяемаяПечатнаяФорма, НомерСтроки, ДополнительныеПараметрыОбработки", Выборка.ВидОбработки,ВыборкаСсылок.Ссылка, Выборка.ЗаменяемаяПечатнаяФорма, Выборка.НомерСтроки, Выборка.ДополнительныеПараметрыОбработки.Получить());
						if(true/*ЭтоЗаменяемаяФорма*/)
						{
							//Подсказка = "Печатная форма заменена подключаемой" + Подсказка;
							if(true/*ПодменятьВстроеннуюФорму*/)
							{
								//СтрокаДерева = СтрокиДерева.Найти(Выборка.ЗаменяемаяПечатнаяФорма, "Имя");
								if(true/*СтрокаДерева = Неопределено*/)
								{
								}
								//ПодменятьВстроеннуюФорму = Ложь;
								//СтрокаДерева.Расшифровка = СтруктураРасшифровки;
								//СтрокаДерева.Подсказка = Подсказка;
								if(true/*ПредставлениеПечатнойФормы = Неопределено*/)
								{
								}
							}
						}
						//ПолноеНаименованиеПечатнойФормы = НаименованиеПечатнойФормы;
						//СуществующаяСтрока = СтрокиДерева.Найти(ПолноеНаименованиеПечатнойФормы, "Текст");
						//Счетчик = 1;
						while(true/*Не СуществующаяСтрока = Неопределено*/)
						{
							//Счетчик = Счетчик + 1;
							//ПолноеНаименованиеПечатнойФормы = НаименованиеПечатнойФормы + "(" + Счетчик + ")";
							//ИндексСтрокиДереваЗаменяемойПечатнойФормы = ?(ЭтоЗаменяемаяФорма, СтрокиДерева.Индекс(СуществующаяСтрока) + 1,Неопределено);
							//СуществующаяСтрока = СтрокиДерева.Найти(ПолноеНаименованиеПечатнойФормы, "Текст");
						}
						/*; 
				
				ДобавитьСтрокуВДеревоКнопок(ДеревоМакетов, Строка(Новый УникальныйИдентификатор), ТипКнопкиКоманднойПанели.Действие, ПолноеНаименованиеПечатнойФормы, Действие, СтруктураРасшифровки, , Подсказка, , , );*/
						if(true/*Не ПредставлениеПечатнойФормы = Неопределено*/)
						{
						}
					}
					//;;
				}
				//;;
			}
			//;;
		}
		// ДобавитьВДеревоМакетовДополнительныеФормы()
		// Процедура добавляет в дерево кнопок макетов встроенные печатные формы.
		//
		// Параметры:
		//  ДеревоМакетов - Дерево значений
		//  ВнутренниеПечатныеФормы - ТаблицаЗначений, Структура
		//  Действие - Действие. Действие кнопки (процедура должна быть описана в форме объекта, на который навешивается подменю)
		//  ДобавлятьВДеревоРазделительИПечатьПоУмолчанию - булево
		//  ПредставлениеПечатнойФормы - Строка, Наименование элемента справочника ВнешниеОбработки
		//

		public void ДобавитьВДеревоМакетовВстроенныеФормы(/*ДеревоКнопок, ВнутренниеПечатныеФормы, Действие, ДобавлятьВДеревоРазделительИПечатьПоУмолчанию = Истина, ПредставлениеПечатнойФормы = Неопределено*/)
		{
			if(true/*ТипЗНЧ(ВнутренниеПечатныеФормы) = Тип("ТаблицаЗначений")*/)
			{
			}
		}
		// ДобавитьВДеревоМакетовВстроенныеФормы()

		public object НапечататьДокументПоУмолчанию(/*Объект, КоличествоЭкземпляров = 0, НаПринтер = Ложь*/)
		{
			if(true/*Метаданные.Документы.Содержит(Объект.Метаданные()) и Объект.Метаданные().Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить и Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(Объект.Проведен)*/)
			{
				//Сообщить("Недостаточно полномочий для печати непроведенного документа!");
			}
			//ДеревоМакетов = ПолучитьДеревоМакетовПечати(Объект.Ссылка, СтруктураВнутреннихПечатныхФорм);
			//СтрокаПоУмолчанию = ПолучитьСтрокуДереваМакетовПоУмолчанию(Объект.Метаданные().Имя, ДеревоМакетов);
			if(true/*СтрокаПоУмолчанию = Неопределено*/)
			{
				//Сообщить("Печать по умолчанию не определена!");
			}
			//Расшифровка = СтрокаПоУмолчанию.Расшифровка;
			if(true/*ТипЗнч(Расшифровка) = Тип("Структура") и Расшифровка.ВидПечатнойФормы = Перечисления.ВидыДополнительныхВнешнихОбработок.ПечатнаяФорма*/)
			{
				if(true/*Не РаботаСДиалогами.ПроверитьМодифицированность(Объект)*/)
				{
				}
				//ТабДокумент = НапечататьВнешнююФорму(Объект.Ссылка, Расшифровка);
				//ЭтоДокумент = Метаданные.Документы.Содержит(Объект.Метаданные());
				//НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ?(ЭтоДокумент, ОбщегоНазначения.СформироватьЗаголовокДокумента(Объект.Ссылка), Строка(Объект)), Объект.Ссылка);
			}
			return null;
		}
		// Печатает документ полученный по нажатию кнопки в форме списка
		//
		// Параметры
		//  Документ - документ,который нужно отпечатать
		//

		public void НапечататьДокументИзФормыСписка(/*Объект*/)
		{
			if(true/*Объект = Неопределено*/)
			{
			}
			//НаПринтер = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ПечатьДокументовБезПредварительногоПросмотра") = Истина;
			if(true/*Не НапечататьДокументПоУмолчанию(Объект, 0, НаПринтер)*/)
			{
				//Предупреждение("Операция не выполнена");
			}
		}
		// НапечататьДокументИзФормыСписка()
		// Функция выводит на печать табличный документ.
		// Открывает форму Печати документов, хаполняет печатный документ формы.
		//
		// Параметры:
		//  ПечДокумент - ТабличныйДокумент
		//  КоличествоЭкземпляров - число
		//  НаПринтер - булево
		//  Заголовок - строка, заголовок формы печати
		//  Ссылка - Ссылка объекта печати
		//

		public object НапечататьДокумент(/*ПечДокумент, КоличествоЭкземпляров = 1, НаПринтер = Ложь, Заголовок = "", Ссылка = Неопределено, ПараметрыПечДокумента = Неопределено*/)
		{
			if(true/*ПечДокумент = Неопределено*/)
			{
			}
			/*// Получить необходимое количество копий
*/
			if(true/*КоличествоЭкземпляров > 0*/)
			{
				//ПечДокумент.КоличествоЭкземпляров = КоличествоЭкземпляров;
			}
			if(true/*НЕ ПечДокумент.АвтоМасштаб
	   И НЕ ЗначениеЗаполнено(ПечДокумент.ИмяПринтера)*/)
			{
				//ПечДокумент.АвтоМасштаб = Истина;
			}
			if(true/*ТипЗнч(НаПринтер) = Тип("Булево")*/)
			{
				if(true/*НаПринтер*/)
				{
					//ПечДокумент.Вывод = ИспользованиеВывода.Разрешить;
					//ПечДокумент.Напечатать();
				}
			}
			return null;
		}
		// НапечататьДокумент()
		// Функция проверят наличие печатных форм у документа (внутренних и внешних).
		//
		// Параметры:
		//  Объект - ДокументОбъект
		//
		// Возвращаемое значение:
		//  Булево - Истина в случае если у документа есть печатные формы.
		//

		public object ЕстьПечатныеФормы(/*Объект*/)
		{
			//ВстроенныйПечатныеФормы = Неопределено;
			if(true/*ТипЗнч(ВстроенныйПечатныеФормы) = Тип("Структура") И ВстроенныйПечатныеФормы.Количество() > 0*/)
			{
			}
			//МетаданныеОбъекта = Объект.Метаданные();
			//ВнешниеПечатныеФормы = 0;
			//Запрос = Новый Запрос;
			/*Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
	               |КОЛИЧЕСТВО(ВнешниеОбработкиПринадлежность.Ссылка) КАК ВнешниеПечатныеФормы
	               |ИЗ
	               |Справочник.ВнешниеОбработки.Принадлежность КАК ВнешниеОбработкиПринадлежность
	               |ГДЕ
	               |	ВнешниеОбработкиПринадлежность.МетаданныеОбъекта= &МетаданныеОбъекта
	               |	И ВнешниеОбработкиПринадлежность.Ссылка.ВидОбработки = &ВидОбработкиПечатнаяФорма
	               |	И (НЕ ВнешниеОбработкиПринадлежность.Ссылка.ПометкаУдаления)";*/
			//Запрос.УстановитьПараметр("ВидОбработкиПечатнаяФорма", Перечисления.ВидыДополнительныхВнешнихОбработок.ПечатнаяФорма);
			if(true/*Метаданные.Документы.Содержит(МетаданныеОбъекта)*/)
			{
				//Запрос.УстановитьПараметр("МетаданныеОбъекта",  "Документ." + МетаданныеОбъекта.Имя);
			}
			//Выборка = Запрос.Выполнить().Выбрать();
			//Выборка.Следующий();
			//ВнешниеПечатныеФормы =  Выборка.ВнешниеПечатныеФормы;
			if(true/*(ВстроенныйПечатныеФормы = Неопределено ИЛИ ВстроенныйПечатныеФормы.Количество() = 0)
		И ВнешниеПечатныеФормы = 0*/)
			{
			}
			return null;
		}
		// ЕстьПечатныеФормы()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ РАБОТЫ С НАСТРОЙКАМИ

		public object ВосстановлениеНастроек(/*СтруктураНастройки*/)
		{
			//ФормаУправленияНастройками = РегистрыСведений.СохраненныеНастройки.ПолучитьФорму("ФормаУправленияНастройками");
			//ФормаУправленияНастройками.мВосстановлениеНастройки = Истина;
			//ФормаУправленияНастройками.мСтруктураНастройки = СтруктураНастройки;
			//Результат = ФормаУправленияНастройками.ОткрытьМодально();
			//СтруктураНастройки = ФормаУправленияНастройками.мСтруктураНастройки;
			return null;
		}
		// ВосстановитьНастройки()

		public object СохранениеНастроек(/*СтруктураНастройки*/)
		{
			//ФормаУправленияНастройками = РегистрыСведений.СохраненныеНастройки.ПолучитьФорму("ФормаУправленияНастройками");
			//ФормаУправленияНастройками.мВосстановлениеНастройки = Ложь;
			//ФормаУправленияНастройками.мСтруктураНастройки = СтруктураНастройки;
			//Результат = ФормаУправленияНастройками.ОткрытьМодально();
			//СтруктураНастройки = ФормаУправленияНастройками.мСтруктураНастройки;
			return null;
		}
		// СохранитьНастройки()

		public object ПолучитьНастройку(/*СтруктураНастройки*/)
		{
			if(true/*ТипЗнч(СтруктураНастройки) <> Тип("Структура")*/)
			{
			}
			/*Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	СохраненныеНастройки.Пользователь,
	|	СохраненныеНастройки.ИмяОбъекта,
	|	СохраненныеНастройки.НаименованиеНастройки КАК НаименованиеНастройки,
	|	СохраненныеНастройки.СохраненнаяНастройка,
	|	СохраненныеНастройки.ИспользоватьПриОткрытии,
	|	СохраненныеНастройки.СохранятьАвтоматически
	|ИЗ
	|	РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
	|ГДЕ
	|	СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта
	|	И СохраненныеНастройки.Пользователь = &Пользователь
	|	И СохраненныеНастройки.НаименованиеНастройки = &НаименованиеНастройки");*/
			if(true/*СтруктураНастройки.Свойство("Пользователь")*/)
			{
				//Запрос.УстановитьПараметр("Пользователь", СтруктураНастройки.Пользователь);
			}
			//Запрос.УстановитьПараметр("ИмяОбъекта", СтруктураНастройки.ИмяОбъекта);
			//Запрос.УстановитьПараметр("НаименованиеНастройки", СтруктураНастройки.НаименованиеНастройки);
			//РезультатЗапроса = Запрос.Выполнить();
			if(true/*РезультатЗапроса.Пустой()*/)
			{
			}
			return null;
		}
		// ПолучитьНастройку()

		public object ПолучитьНастройки(/*СтруктураНастройки, ПолучитьНастройкиВсехПользователей = Ложь, ПолучитьГрупповыеНастройки = Ложь, ПолучитьОбщиеНастройки = Ложь*/)
		{
			if(true/*ТипЗнч(СтруктураНастройки) <> Тип("Структура")*/)
			{
			}
			/*Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	СохраненныеНастройки.Пользователь,
	|	СохраненныеНастройки.ИмяОбъекта,
	|	СохраненныеНастройки.НаименованиеНастройки КАК НаименованиеНастройки,
	|	СохраненныеНастройки.СохраненнаяНастройка,
	|	СохраненныеНастройки.ИспользоватьПриОткрытии,
	|	СохраненныеНастройки.СохранятьАвтоматически,
	|	0 КАК ВидНастройки
	|ИЗ
	|	РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
	|ГДЕ
	|	СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта
	|	И СохраненныеНастройки.Пользователь = &Пользователь
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	СохраненныеНастройки.Пользователь,
	|	СохраненныеНастройки.ИмяОбъекта,
	|	СохраненныеНастройки.НаименованиеНастройки,
	|	СохраненныеНастройки.СохраненнаяНастройка,
	|	СохраненныеНастройки.ИспользоватьПриОткрытии,
	|	СохраненныеНастройки.СохранятьАвтоматически,
	|	1
	|ИЗ
	|	РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
	|ГДЕ
	|	СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта
	|	И СохраненныеНастройки.Пользователь <> &Пользователь
	|	И СохраненныеНастройки.Пользователь ССЫЛКА Справочник.Пользователи
	|	И &НастройкиВсехПользователей = ИСТИНА
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	СохраненныеНастройки.Пользователь,
	|	СохраненныеНастройки.ИмяОбъекта,
	|	СохраненныеНастройки.НаименованиеНастройки,
	|	СохраненныеНастройки.СохраненнаяНастройка,
	|	СохраненныеНастройки.ИспользоватьПриОткрытии,
	|	СохраненныеНастройки.СохранятьАвтоматически,
	|	2
	|ИЗ
	|	РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
	|ГДЕ
	|	СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта
	|	И ВЫРАЗИТЬ(СохраненныеНастройки.Пользователь КАК Справочник.ГруппыПользователей).ПользователиГруппы.Пользователь = &Пользователь
	|	И &ГрупповыеНастройки = ИСТИНА
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	СохраненныеНастройки.Пользователь,
	|	СохраненныеНастройки.ИмяОбъекта,
	|	СохраненныеНастройки.НаименованиеНастройки,
	|	СохраненныеНастройки.СохраненнаяНастройка,
	|	СохраненныеНастройки.ИспользоватьПриОткрытии,
	|	СохраненныеНастройки.СохранятьАвтоматически,
	|	3
	|ИЗ
	|	РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
	|ГДЕ
	|	СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта
	|	И СохраненныеНастройки.Пользователь = НЕОПРЕДЕЛЕНО
	|	И &ОбщиеНастройки = ИСТИНА
	|
	|УПОРЯДОЧИТЬ ПО
	|	ВидНастройки,
	|	НаименованиеНастройки");*/
			if(true/*СтруктураНастройки.Свойство("Пользователь") И ЗначениеЗаполнено(СтруктураНастройки.Пользователь)*/)
			{
				//Запрос.УстановитьПараметр("Пользователь", СтруктураНастройки.Пользователь);
			}
			//Запрос.УстановитьПараметр("ИмяОбъекта", СтруктураНастройки.ИмяОбъекта);
			//Запрос.УстановитьПараметр("НастройкиВсехПользователей", ПолучитьНастройкиВсехПользователей);
			//Запрос.УстановитьПараметр("ГрупповыеНастройки", ПолучитьГрупповыеНастройки);
			//Запрос.УстановитьПараметр("ОбщиеНастройки", ПолучитьОбщиеНастройки);
			return null;
		}
		// ПолучитьНастройки()

		public object ПолучитьНастройкуИспользоватьПриОткрытии(/*СтруктураНастройки*/)
		{
			if(true/*ТипЗнч(СтруктураНастройки) <> Тип("Структура")*/)
			{
			}
			/*Запрос = Новый Запрос(
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	ВложенныйЗапрос.НаименованиеНастройки КАК НаименованиеНастройки,
	|	ВложенныйЗапрос.СохраненнаяНастройка КАК СохраненнаяНастройка,
	|	ВложенныйЗапрос.СохранятьАвтоматически КАК СохранятьАвтоматически
	|ИЗ
	|	(ВЫБРАТЬ ПЕРВЫЕ 1
	|		СохраненныеНастройки.НаименованиеНастройки КАК НаименованиеНастройки,
	|		СохраненныеНастройки.СохраненнаяНастройка КАК СохраненнаяНастройка,
	|		СохраненныеНастройки.СохранятьАвтоматически КАК СохранятьАвтоматически,
	|		0 КАК ВидНастройки
	|	ИЗ
	|		РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
	|	ГДЕ
	|		СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта
	|		И СохраненныеНастройки.ИспользоватьПриОткрытии = ИСТИНА
	|		И СохраненныеНастройки.Пользователь = &Пользователь
	|	
	|	ОБЪЕДИНИТЬ ВСЕ
	|	
	|	ВЫБРАТЬ ПЕРВЫЕ 1
	|		СохраненныеНастройки.НаименованиеНастройки,
	|		СохраненныеНастройки.СохраненнаяНастройка,
	|		СохраненныеНастройки.СохранятьАвтоматически,
	|		1
	|	ИЗ
	|		РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
	|	ГДЕ
	|		СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта
	|		И СохраненныеНастройки.ИспользоватьПриОткрытии = ИСТИНА
	|		И ВЫРАЗИТЬ(СохраненныеНастройки.Пользователь КАК Справочник.ГруппыПользователей).ПользователиГруппы.Пользователь = &Пользователь
	|	
	|	ОБЪЕДИНИТЬ ВСЕ
	|	
	|	ВЫБРАТЬ ПЕРВЫЕ 1
	|		СохраненныеНастройки.НаименованиеНастройки,
	|		СохраненныеНастройки.СохраненнаяНастройка,
	|		СохраненныеНастройки.СохранятьАвтоматически,
	|		2
	|	ИЗ
	|		РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
	|	ГДЕ
	|		СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта
	|		И СохраненныеНастройки.Пользователь = НЕОПРЕДЕЛЕНО
	|		И СохраненныеНастройки.ИспользоватьПриОткрытии = ИСТИНА) КАК ВложенныйЗапрос
	|
	|УПОРЯДОЧИТЬ ПО
	|	ВложенныйЗапрос.ВидНастройки");*/
			if(true/*СтруктураНастройки.Свойство("Пользователь") И ЗначениеЗаполнено(СтруктураНастройки.Пользователь)*/)
			{
				//Запрос.УстановитьПараметр("Пользователь", СтруктураНастройки.Пользователь);
			}
			//Запрос.УстановитьПараметр("ИмяОбъекта", СтруктураНастройки.ИмяОбъекта);
			//РезультатЗапроса = Запрос.Выполнить();
			if(true/*РезультатЗапроса.Пустой()*/)
			{
			}
			return null;
		}
		// ПолучитьНастройкуИспользоватьПриОткрытии()

		public object СохранитьНастройку(/*СтруктураНастройки, СтруктураЗаменяемойНастройки = Неопределено*/)
		{
			if(true/*ТипЗнч(СтруктураНастройки) <> Тип("Структура")*/)
			{
			}
			if(true/*СтруктураНастройки.Свойство("ИспользоватьПриОткрытии") И СтруктураНастройки.ИспользоватьПриОткрытии = Истина*/)
			{
				/*Запрос = Новый Запрос(
		"ВЫБРАТЬ
		|	СохраненныеНастройки.Пользователь,
		|	СохраненныеНастройки.ИмяОбъекта,
		|	СохраненныеНастройки.НаименованиеНастройки
		|ИЗ
		|	РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
		|ГДЕ
		|	СохраненныеНастройки.ИспользоватьПриОткрытии = ИСТИНА
		|	И СохраненныеНастройки.Пользователь = &Пользователь
		|	И СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта
		|	И СохраненныеНастройки.НаименованиеНастройки <> &НаименованиеНастройки");*/
				//Запрос.УстановитьПараметр("Пользователь", СтруктураНастройки.Пользователь);
				//Запрос.УстановитьПараметр("ИмяОбъекта", СтруктураНастройки.ИмяОбъекта);
				//Запрос.УстановитьПараметр("НаименованиеНастройки", СтруктураНастройки.НаименованиеНастройки);
				//РезультаЗапроса = Запрос.Выполнить();
				if(true/*РезультаЗапроса.Пустой() = Ложь*/)
				{
					//МенеджерЗаписи = РегистрыСведений.СохраненныеНастройки.СоздатьМенеджерЗаписи();
					//Выборка = РезультаЗапроса.Выбрать();
					while(true/*Выборка.Следующий()*/)
					{
						//МенеджерЗаписи.Пользователь = Выборка.Пользователь;
						//МенеджерЗаписи.ИмяОбъекта = Выборка.ИмяОбъекта;
						//МенеджерЗаписи.НаименованиеНастройки = Выборка.НаименованиеНастройки;
						//МенеджерЗаписи.Прочитать();
						if(true/*МенеджерЗаписи.Выбран()*/)
						{
							//МенеджерЗаписи.ИспользоватьПриОткрытии = Ложь;
							//МенеджерЗаписи.Записать();
						}
					}
					//;;
				}
			}
			//МенеджерЗаписи = РегистрыСведений.СохраненныеНастройки.СоздатьМенеджерЗаписи();
			if(true/*СтруктураЗаменяемойНастройки <> Неопределено*/)
			{
				//МенеджерЗаписи.Пользователь = СтруктураЗаменяемойНастройки.Пользователь;
				//МенеджерЗаписи.ИмяОбъекта = СтруктураЗаменяемойНастройки.ИмяОбъекта;
				//МенеджерЗаписи.НаименованиеНастройки = СтруктураЗаменяемойНастройки.НаименованиеНастройки;
				//МенеджерЗаписи.Прочитать();
				if(true/*МенеджерЗаписи.Выбран()*/)
				{
					//МенеджерЗаписи.НаименованиеНастройки = СтруктураНастройки.НаименованиеНастройки;
					if(true/*СтруктураНастройки.Свойство("СохраненнаяНастройка")*/)
					{
						//МенеджерЗаписи.СохраненнаяНастройка = Новый ХранилищеЗначения(СтруктураНастройки.СохраненнаяНастройка, Новый СжатиеДанных(9));
					}
					if(true/*СтруктураНастройки.Свойство("ИспользоватьПриОткрытии")*/)
					{
						//МенеджерЗаписи.ИспользоватьПриОткрытии = СтруктураНастройки.ИспользоватьПриОткрытии;
					}
					if(true/*СтруктураНастройки.Свойство("СохранятьАвтоматически")*/)
					{
						//МенеджерЗаписи.СохранятьАвтоматически = СтруктураНастройки.СохранятьАвтоматически;
					}
				}
			}
			//МенеджерЗаписи.Записать();
			return null;
		}
		// СохранитьНастройку()

		public object УдалитьНастройку(/*СтруктураНастройки*/)
		{
			if(true/*ТипЗнч(СтруктураНастройки) <> Тип("Структура")*/)
			{
			}
			//МенеджерЗаписи = РегистрыСведений.СохраненныеНастройки.СоздатьМенеджерЗаписи();
			//МенеджерЗаписи.Пользователь = СтруктураНастройки.Пользователь;
			//МенеджерЗаписи.ИмяОбъекта = СтруктураНастройки.ИмяОбъекта;
			//МенеджерЗаписи.НаименованиеНастройки = СтруктураНастройки.НаименованиеНастройки;
			//МенеджерЗаписи.Прочитать();
			if(true/*МенеджерЗаписи.Выбран()*/)
			{
				//МенеджерЗаписи.Удалить();
			}
			return null;
		}
		// УдалитьНастройку()
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ МЕХАНИЗМА РАБОТЫ С УНИВЕРСАЛЬНЫМ ПОИСКОМ ДАННЫХ
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
		// Процедура снимает отборы у списка номенклатуры, которые были установлены из ЭУ "быстрых" отборов на форме.
		//

		public void СнятьБыстрыеОтборыДанных(/*ОбъектДанных, СписокОтборов*/)
		{
			if(true/*ТипЗнч(СписокОтборов) = Тип("СписокЗначений")*/)
			{
				/*// принудительно убираем ограничение по ссылке
*/
				//ОбъектДанных.Отбор["Ссылка"].Использование = Ложь;
			}
		}
		// Процедура устанавливает отборы у списка номенклатуры, которые были установлены из ЭУ "быстрых" отборов на форме.
		//

		public void УстановитьБыстрыйОтборДанных(/*ОбъектДанных, Знач ЗначениеОтбора = "", Знач ИмяОтбораДанных = Неопределено*/)
		{
			if(true/*НЕ ЗначениеЗаполнено(ИмяОтбораДанных)*/)
			{
			}
			if(true/*ОбъектДанных.Отбор[ИмяОтбораДанных].Использование*/)
			{
				//ОбъектДанных.Отбор[ИмяОтбораДанных].ВидСравнения  = ВидСравнения.Содержит;
				//ОбъектДанных.Отбор[ИмяОтбораДанных].Значение = ЗначениеОтбора;
			}
		}
		// процедура снимает все отборы посика по полям

		public void ОчиститьОтборыПоискаПоПолям(/*Список, СписокБыстрыхОтборовПоРеквизитам, СписокПолейПоиска*/)
		{
			//СнятьБыстрыеОтборыДанных(Список, СписокБыстрыхОтборовПоРеквизитам);
			//СписокПолейПоиска = Неопределено;
			//Список.Обновить();
		}
		//функция возвращает настройку поиска по имени

		public object ПолучитьПараметрыНастройкиПоискаПоИмени(/*Знач СоответствиеИмяКнопокИОтборов, Знач ТипОбъектовПоиска, Знач ИмяНастройки,
	Знач ПользовательНастройкиОбмена, Знач НастройкаОтбораДанных*/)
		{
			//ИмяОбъектаНастройки = ПолучитьИмяОбъектаНастройки(ТипОбъектовПоиска);
			if(true/*ПустаяСтрока(ИмяОбъектаНастройки)*/)
			{
			}
			/*// нужно получить настройку поиска по имени
*/
			//ЗначениеСоответсвия = СоответствиеИмяКнопокИОтборов.Получить(ИмяНастройки);
			//СтруктураНастройки = Новый Структура;
			//СтруктураНастройки.Вставить("ИмяОбъекта", ИмяОбъектаНастройки);
			if(true/*ЗначениеСоответсвия = Неопределено*/)
			{
				/*// в соответствии не нашли нужных параметров
*/
				//СтруктураНастройки.Вставить("Пользователь", ПользовательНастройкиОбмена);
				//СтруктураНастройки.Вставить("НаименованиеНастройки", НастройкаОтбораДанных);
			}
			//НастройкаНайдена = ПолучитьНастройку(СтруктураНастройки);
			if(true/*НЕ НастройкаНайдена*/)
			{
				//СтруктураНастройки = Неопределено;
			}
			return null;
		}

		public object ВыполнитьИнтерактивныйПоискОбъектовВСписке(/*ТипОбъектовПоиска, СписокПоиска, ТабличноеПолеПоиска,
	Знач НеИспользуемыеПараметрыОтбора = Неопределено, Знач НастройкаПоиска = Неопределено, 
	РезультирующееДеревоПоиска = Неопределено, СтрокаПоискаДанных = "",
	Знач ФормаВладелец = Неопределено*/)
		{
			if(true/*СписокПоиска = Неопределено 
		ИЛИ ТабличноеПолеПоиска = Неопределено*/)
			{
			}
			/*// отборов в списке может и не быть
*/
			//ДанныеНеИспользуемыеПараметрыОтбора = Неопределено;
			if(true/*НеИспользуемыеПараметрыОтбора <> Неопределено*/)
			{
				//ДанныеНеИспользуемыеПараметрыОтбора = НеИспользуемыеПараметрыОтбора.Скопировать();
			}
			//ДополнительныйОтбор = СписокПоиска.Отбор;
			//ОбработкаУниверсальногоПоиска = Обработки.УниверсальныйПоискОбъектов.Создать();
			//ОбработкаУниверсальногоПоиска.НастройкаПоискаДанных = НастройкаПоиска;
			/*СписокНайденныхОбъектов = ОбработкаУниверсальногоПоиска.ВыполнитьИнтерактивныйПоискОбъектов(ТипОбъектовПоиска, Ложь, ДополнительныйОтбор,
		ДанныеНеИспользуемыеПараметрыОтбора, РезультирующееДеревоПоиска, СтрокаПоискаДанных, ФормаВладелец);*/
			if(true/*СписокНайденныхОбъектов = Неопределено*/)
			{
			}
			/*// нужно для всех неиспользуемых отборов убрать признак использования
*/
			if(true/*ДанныеНеИспользуемыеПараметрыОтбора <> Неопределено*/)
			{
			}
			//СписокПоиска.Отбор.Ссылка.Использование = Истина;
			//СписокПоиска.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
			//СписокПоиска.Отбор.Ссылка.Значение = СписокНайденныхОбъектов;
			//ТабличноеПолеПоиска.НастройкаОтбора.Ссылка.Доступность = Истина;
			if(true/*ТабличноеПолеПоиска.ИерархическийПросмотр*/)
			{
				//ОтветНаВопрос = Вопрос("Для удобства поиска рекомендуется снять режим иерархического просмотра. Снять?", РежимДиалогаВопрос.ДаНет);
				if(true/*ОтветНаВопрос = КодВозвратаДиалога.Да*/)
				{
					//ТабличноеПолеПоиска.ИерархическийПросмотр = Ложь;
				}
			}
			return null;
		}
		//Функция возвращает нименованеи объекта настройки

		public object ПолучитьИмяОбъектаНастройки(/*ТипОбъектовПоиска*/)
		{
			if(true/*ТипОбъектовПоиска = Неопределено*/)
			{
			}
			//МетаданныеСправочника = Метаданные.НайтиПоТипу(ТипОбъектовПоиска);
			return null;
		}
		//процедура скрывает колонки в табличном документе
		//поиск колонок происходит в указанной области по указанному тексту заголовка колонки

		public void СкрытьКолонкиВТабличномДокументе(/*ТабДокумент, ТекстКолонки, ШиринаКолонки=1, ИмяОбластиШапки=""*/)
		{
			if(true/*ОбластьШапкиМест <> неопределено*/)
			{
				//ОбластьМест = ТабДокумент.Область(,ОбластьШапкиМест.Лево,,ОбластьШапкиМест.Лево + ШиринаКолонки-1);
				//ОбластьМест.Видимость = ложь;
			}
		}
		// Функция склоняет переданую фразу
		// Параметры:
		//  Фраза (обязательный), тип строка
		//   Параметр должен содержать фразу. Каждое слово фразы будет просклонено отдельно
		//
		//  Падеж (обязательный), тип число
		//   Падеж, в который необходимо поставить ФИО.
		//   1 - Именительный
		//   2 - Родительный
		//   3 - Дательный
		//   4 - Винительный
		//   5 - Творительный
		//   6 - Предложный
		//

		public object Просклонять(/*Компонента, Знач Фраза = "", Падеж = 1, Пол = Неопределено, Результат*/)
		{
			if(true/*Компонента = Неопределено*/)
			{
			}
			//Результат = "";
			//МассивСтрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Фраза, " ");
			/*// Выделим первые 3 слова, так как компонента не умеет склонять фразу большую 3х символов
*/
			//НомерНесклоняемогоСимвола = 4;
			if(true/*ПустаяСтрока(Результат)*/)
			{
				//Результат = Фраза;
			}
			/*// Остальные символы добавим без склонения
*/
			//Результат = СокрЛП(Результат);
			return null;
		}
		// Просклонять()
		// Функция склоняет Фамилию, Имя и Отчество
		// Параметры:
		//  Фамилия, Имя, Отчество (обязательный), тип строка
		//   Параметры должены содержать фамилию, имя и отчество в именительном падеже единственного числа.
		//   Строка должна состоять только из букв русского алфавита, пробелов и дефисов.
		//   Внутри фамилии, имени, отчества пробелов быть не должно.
		//   Двойные и тройные имена и фамилии должны писаться через дефис. Имена и отчества должны быть полные
		//
		//  Падеж (обязательный), тип число
		//   Падеж, в который необходимо поставить ФИО.
		//   1 - Именительный
		//   2 - Родительный
		//   3 - Дательный
		//   4 - Винительный
		//   5 - Творительный
		//   6 - Предложный
		//
		//  Пол (необязательный), тип ПеречислениеСсылка.ПолФизическихЛиц
		//   Данный параметр предназначен для разрешения возможных неоднозначностей, например, имя Карен Акопян
		//   может принадлежать и мужчине, и женщине, и в зависимости от этого склоняться или не склоняться.
		//   В остальных случаях рекомендуется опускать этот параметр.
		//

		public object ПросклонятьФамилиюИмяОтчество(/*Компонента, Знач Фамилия = "", Знач Имя = "", Знач Отчество = "", Падеж = 1, Пол = Неопределено, Результат = "", СообщениеОбОшибке = ""*/)
		{
			if(true/*Компонента = Неопределено*/)
			{
			}
			//ФамилияНовая	= Фамилия;
			//ИмяНовое		= Имя;
			//ОтчествоНовое	= Отчество;
			//Результат = Фамилия + " " + Имя + " " + Отчество;
			/*// Двойные и тройные ФИО, если указаны с пробелами, исправим на использование дефиса
*/
			//НужноИсправитьФамилию	= Найти(Фамилия, " ") > 0;
			//НужноИсправитьИмя		= Найти(Имя, " ") > 0;
			//НужноИсправитьОтчество	= Найти(Отчество, " ") > 0;
			if(true/*НужноИсправитьФамилию*/)
			{
				//ФамилияНовая = СтрЗаменить(Фамилия, " ", "-");
			}
			if(true/*НужноИсправитьИмя*/)
			{
				//ИмяНовое = СтрЗаменить(Имя, " ", "-");
			}
			if(true/*НужноИсправитьОтчество*/)
			{
				//ОтчествоНовое = СтрЗаменить(Отчество, " ", "-");
			}
			//ФИО = ФамилияНовая + " " + ИмяНовое + " " + ОтчествоНовое;
			if(true/*ПустаяСтрока(ФИО)*/)
			{
				//СообщениеОбОшибке = "Строка с ФИО не должна быть пустая.";
			}
			if(true/*Не ФИОНаписаноПоРусски(ФИО)*/)
			{
				//СообщениеОбОшибке = "Строка с ФИО должна состоять только из букв русского алфавита, пробелов и дефисов.";
			}
			if(true/*СтрЧислоВхождений(ФИО, " ") > 3*/)
			{
				//СообщениеОбОшибке = "Фамилия, имя и отчество должны разделяться пробелами. Внутри фамилии, имени, отчества пробелов быть не должно.";
			}
			return null;
		}
		// ПросклонятьФИО()
	}
}
